Serilog:如何记录,将不同 "origins" 的消息记录到不同的文件
Serilog: How to log, log message with different "origins" to different files
我想在我的 ASP.NET 核心 Web 应用程序中使用 Serilog 记录信息 - Fatal,使用 .NET Core 3.0
我想将这些数据记录在不同的文件中(这已经被询问和回答,但我认为我的情况有点不同):
- information.log => 关于应用程序做了什么的信息(仅
使用 Serilog / Microsoft 的自动日志记录)
- error.log => 所有发生的错误/未处理的异常
- other_information.log =>(真的没有这个名字)关于程序的信息但只记录我创建的消息
我只是不知道如何区分来自 Microsoft 的信息日志和我自己的信息日志。
我找到了一个关于如何禁用来自 Serilog/Microsoft 的日志记录的问题/答案,但这样做会为所有 LogWriters 停用它,如何关闭 ASP.NET 完成的日志记录核心框架
.
然后我找到了另一个问题的答案,这可能正是我要找的,但我不明白会发生什么,所以我宁愿不使用它,因为我不喜欢魔法,因为如果有是个问题,修起来比较费时间,.
我还发现了另一个类似的问题:
不过这个我也看不懂
因此,如果其中之一真的是我的问题的解决方案,如果有人能向我解释一下,我将不胜感激。
这是我到目前为止的记录器配置,它所做的就是将所有信息记录在一个文件中,将所有错误记录在另一个文件中。
using Serilog;
using Serilog.Events;
...
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Information()
.WriteTo.Console()
.WriteTo.Logger(l => l
.Filter.ByIncludingOnly(e => e
.Level == LogEventLevel.Information)
.WriteTo.File(@"Logs\Info.log"))
.WriteTo.Logger(l => l
.Filter.ByIncludingOnly(e => e
.Level == LogEventLevel.Error)
.WriteTo.File(@"Logs\Error.log"))
.CreateLogger();
正如我所说,将所有信息记录在一个文件中,将所有错误记录在另一个文件中,这种方法工作得很好,但我不知道如何继续。
编辑:我从这个问题的答案中找到了目前的配置:
我相信您只需要根据 属性 SourceContext 过滤您的日志,这里有解释:
我想在我的 ASP.NET 核心 Web 应用程序中使用 Serilog 记录信息 - Fatal,使用 .NET Core 3.0
我想将这些数据记录在不同的文件中(这已经被询问和回答,但我认为我的情况有点不同):
- information.log => 关于应用程序做了什么的信息(仅 使用 Serilog / Microsoft 的自动日志记录)
- error.log => 所有发生的错误/未处理的异常
- other_information.log =>(真的没有这个名字)关于程序的信息但只记录我创建的消息
我只是不知道如何区分来自 Microsoft 的信息日志和我自己的信息日志。
我找到了一个关于如何禁用来自 Serilog/Microsoft 的日志记录的问题/答案,但这样做会为所有 LogWriters 停用它,如何关闭 ASP.NET 完成的日志记录核心框架 .
然后我找到了另一个问题的答案,这可能正是我要找的,但我不明白会发生什么,所以我宁愿不使用它,因为我不喜欢魔法,因为如果有是个问题,修起来比较费时间,
我还发现了另一个类似的问题:
因此,如果其中之一真的是我的问题的解决方案,如果有人能向我解释一下,我将不胜感激。
这是我到目前为止的记录器配置,它所做的就是将所有信息记录在一个文件中,将所有错误记录在另一个文件中。
using Serilog;
using Serilog.Events;
...
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Information()
.WriteTo.Console()
.WriteTo.Logger(l => l
.Filter.ByIncludingOnly(e => e
.Level == LogEventLevel.Information)
.WriteTo.File(@"Logs\Info.log"))
.WriteTo.Logger(l => l
.Filter.ByIncludingOnly(e => e
.Level == LogEventLevel.Error)
.WriteTo.File(@"Logs\Error.log"))
.CreateLogger();
正如我所说,将所有信息记录在一个文件中,将所有错误记录在另一个文件中,这种方法工作得很好,但我不知道如何继续。
编辑:我从这个问题的答案中找到了目前的配置:
我相信您只需要根据 属性 SourceContext 过滤您的日志,这里有解释: